#include <stdio.h>

// 一只猴子 n个桃子 每一天都吃剩下的桃子一半多一个 10天：1个桃子
// 第一天： ？个桃子
int Peach(int day)
{
    if (day == 10) // 终止条件
    {
        return 1;
    } // 如果没有条件判断，会无限递归
    return (Peach(day + 1) + 1) * 2; // 递归循环体
    // int count = 1;
    // for (int i = 0; i < 10; i++)
    // {
    //     count = (count + 1) * 2;
    // }
}

// 青蛙跳台阶 一次跳1个或2个台阶 跳n级台阶多少种方法
//  f(n)=f(n-1)+f(n-2)  斐波那契数列
int JumpStep(int n)
{
    if (n == 1)
    {
        return 1;
    }
    if (n == 2)
    {
        return 2;
    }
    return JumpStep(n - 1) + JumpStep(n - 2);
}

// 递归求阶乘
int func(int n)
{
    if (n == 1)
    {
        return 1;
    }
    return n * func(n - 1);
}

// 递归求字符串长度
int MyStrlen(const char *s)
{
    if (*s == '\0')
    {
        return 0;
    }
    return 1 + MyStrlen(s + 1);
}

int main()
{

    printf("%d\n", Peach(1));
    printf("%d\n", func(5));
    return 0;
}
